<?php
require '../main.php';
require BASE_PATH . '/ejemplos/controlador/controlador.php';
define('PLANTILLA_BASE_URL',BASE_URL . '/ejemplos/plantilla');
//se encarga de cargar dinamicamente los archivos de la carpeta ya ingresada BASE_PATH . '/ejemplos/controlador'
autoload::import(BASE_PATH . '/ejemplos/controlador');
$template = new tpl(BASE_PATH . '/ejemplos/plantilla');

$LOGIN = new login($template);
//var_dump(parse_url($_SERVER['PATH_INFO']));
$URL_CONTROL = empty($_SERVER['PATH_INFO']) ?  array('','') : explode(':',$_SERVER['PATH_INFO'],2) ;

$ESTATICO = explode('/', trim($URL_CONTROL[0],'/'));
$VARIABLE = empty($URL_CONTROL[1]) ? array('default'): explode('/', trim($URL_CONTROL[1],'/'));

//var_dump($VARIABLE );

$controlador = empty($ESTATICO[0]) ? 'controlador' : $ESTATICO[0];
//$metodo = empty($VARIABLE[0]) ? '' : $VARIABLE[0] ;
$metodo = array_shift($VARIABLE);
$argumentos = $VARIABLE;

$archivo = BASE_PATH . '/ejemplos/controlador/'. $controlador .'.php';

if(file_exists($archivo) && $controlador != 'controlador')
{
	require_once $archivo;
}
else
{
	require BASE_PATH . '/ejemplos/controlador/page_default.php';
	$controlador = 'page_default';
	$metodo = 'getDefault';
	$argumentos = & $VARIABLE;
}

$control = new $controlador($template);
$body = '';

switch(true)
{
	case empty($metodo): 
		$body = call_user_func_array(array($control,"getDefault"),$argumentos);
	break;
	case method_exists($control,$metodo) && is_callable(array($control,$metodo)):
		$body = call_user_func_array(array($control,$metodo),$argumentos);
	break;
	case method_exists($control,'get' . $metodo) && is_callable(array($control,'get' . $metodo)):
		$body =  call_user_func_array(array($control,'get' .$metodo),$argumentos);break;
	default : 
		$body = $control->error404($metodo);break;
}
echo $template->parseAndRender('index',array('body'=>$body,
										'login' => $LOGIN->login()));
